課程資訊
課程名稱
高等編譯器設計
ADVANCED COMPILER DESIGN 
開課學期
97-1 
授課對象
電機資訊學院  資訊工程學研究所  
授課教師
陳俊良 
課號
CSIE5054 
課程識別碼
922 U1220 
班次
 
學分
全/半年
半年 
必/選修
選修 
上課時間
星期四2,3,4(9:10~12:10) 
上課地點
資105 
備註
限學士班三年級以上 且 限電資學院學生(含輔系、雙修生)
總人數上限:50人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/971compiler2 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

編譯器負責把利用高階語言撰寫的程式轉成低階語言的格式,以利硬體的執行,是計算機系統最重要的軟體之一。倘若在研習過編譯器的基本理論後,實際研讀真實的編譯器程式碼,將可以對編譯器有更深一層的理解。
另一方面,由於SoC,目前台灣業界已擁有自製CPU硬體的能力;緊接著該考慮如何有效發揮自製CPU的效能,此時編譯器的角色將相形重要。一般而言,重頭開發一個編譯器代價甚大,或者說沒有必要,替代方案是移植並修改現有的編譯器。GCC (Gnu Compiler Collection) 是一個被廣泛使用開放原碼 (open source) 的編譯器系統,是上述需求的良好選擇。
本課程主要內容是研讀GCC原始碼,並兼顧及其他編譯器相關議題。 

課程目標
本課程的目標在於讓修課同學:
1. 了解GCC的程式大架構、中間碼 (intermediate representation) 格式、機器描述 (machine description,用以表達目標碼的CPU指令),等GCC的重要元件。
2. 經由研讀GCC原始碼 (用C語言撰寫的),加強C語言的程式技巧,以及培養研讀大型軟體的能力。
3. 更進一步,有能力幫GCC增添一個最佳化程序 (optimization pass) 和更改GCC的機器描述,以適應特殊CPU的特殊需求。 
課程要求
 
預期每週課後學習時數
 
Office Hours
另約時間 備註: :大部分時間我都在系館,請直接到509室找我,或者請eMail約時間  
指定閱讀
 
參考書目
請見第一週投影片 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
期中口考 
30% 
暫訂,教師保留更改之權利。  
2. 
實驗一 
0% 
暫訂,教師保留更改之權利。  
3. 
實驗二 
15% 
暫訂,教師保留更改之權利。  
4. 
實驗三 
15% 
暫訂,教師保留更改之權利。  
5. 
實驗四 
15% 
暫訂,教師保留更改之權利。  
6. 
作業 
15% 
暫訂,教師保留更改之權利。  
7. 
課堂表現 
10% 
暫訂,教師保留更改之權利。  
 
課程進度
週次
日期
單元主題